import { createStore } from 'vuex'


export default createStore({

  //所有的数据都放在这里
  state: {
    counter:888,
    userInfo:{
      username:'',
      token:''
    }
  },

  //对vuex进行过滤，相当于if条件判断
  getters: {
    getCounter(state){
    return state.counter > 50 ? state.counter : "counter数据异常"
    }
  },

  //修改数据,使用时需要添加事件,页面刷新时数据还原
  mutations: {
    mutations(state,num){     
      state.counter+=num
    },
    //登陆传递用户信息
    setUser(state,paylod){
        state.userInfo = paylod
    },
    //退出登陆清空用户信息
    removeUser(state,paylod){
        state.userInfo = {
          username:'',
          token:''
        }
    }
  },
  //类似于mutations，不同的是actions是异步操作
  //actions执行要调用mutations 
  //使用方法与mutations 第二种简便方法一致
  actions: {
  asyncAddCounter({ conmit }){
    //调用mutations 中的方法,第一个参数是mutations 中的方法名，第二个参数基本都是后台传过来的数据，ajax直接可以在这里写
    conmit("mutations",10)
  }
  },
  modules: { }
    //login  此处是引入多个vuex文件进行部分持久化应用
  // },
  // plugins:[
  //   createPersistedstate({
  //    // key:'login',// 存数据的key名   自定义的  要有语义化   此处是引入多个vuex文件进行部分持久化应用
  //     //paths: ['login'] // 要把那些模块加入缓存,loginModule方法下面的名字   此处是引入多个vuex文件进行部分持久化应用
  //     key:'login'
  //   }) 
  // ]
})
